#include <sys/eventfd.h>
#include <unistd.h>
#include <iostream>

int main()
{
    int fd =eventfd(0,EFD_CLOEXEC|EFD_NONBLOCK);//创建eventfd
    if(fd==-1)
    return 1;
    uint64_t u=1; //用于接收事件计数
    write(fd,&u,sizeof(u)); //发送一个事件
    write(fd,&u,sizeof(u)); //发送一个事件
    write(fd,&u,sizeof(u)); //发送一个事件
    // read(fd,&u,sizeof(u)); //读取事件计数,此时计数值为3
    // printf("event count:%ld\n",u);

    write(fd,&u,sizeof(u));//发送一个事件
    write(fd,&u,sizeof(u));//发送一个事件
    write(fd,&u,sizeof(u));//发送一个事件
    uint64_t res=0;
    read(fd,&res,sizeof(res));//读取事件计数,此时计数值为6
    printf("event count:%ld\n",res);
    printf("event count:%ld\n",u);
    close(fd);
    return 0;
}